﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using HotelManager.Business_Logic_Layer;
using HotelManager.Data_Transfer_Layer;
using System.Data;

namespace HotelManager.GUI.UC
{
    public partial class Phong : UserControl
    {
        khuvucBLO kv_blo;
        loaiphongBLO lp_blo;
        phongBLO p_blo;
        public Phong()
        {
            InitializeComponent();
            kv_blo = new khuvucBLO();
            lp_blo = new loaiphongBLO();
            p_blo = new phongBLO();
            Load_Data();
        }

        public void Load_Gridview()
        {
            phongDTO[] p_dto = new phongDTO[p_blo.get().Count()];
            p_dto = p_blo.get();
            // DataTable
            DataTable dt = new DataTable();
            DataColumn tenphong = new DataColumn();
            tenphong.ColumnName = "tenphong";
            tenphong.ReadOnly = true;
            DataColumn cl_tinhtrang = new DataColumn();
            cl_tinhtrang.ColumnName = "tinhtrang";
            cl_tinhtrang.ReadOnly = true;
            DataColumn cl_Khuvuc = new DataColumn();
            cl_Khuvuc.ColumnName = "khuvuc";
            cl_Khuvuc.ReadOnly = true;
            DataColumn cl_loaiphong = new DataColumn();
            cl_loaiphong.ColumnName = "loaiphong";
            cl_loaiphong.ReadOnly = true;
            DataColumn cl_id = new DataColumn();
            cl_id.ColumnName = "id";
            cl_id.ReadOnly = true;
            //
            dt.Columns.Add(tenphong);
            dt.Columns.Add(cl_tinhtrang);
            dt.Columns.Add(cl_Khuvuc);
            dt.Columns.Add(cl_loaiphong);
            dt.Columns.Add(cl_id);
            //
            foreach (phongDTO obj in p_dto)
            {
                DataRow row = dt.NewRow();
                row["tenphong"] = obj.P_tenphong;
                row["tinhtrang"] = obj.P_tinhtrang;
                int kv_id = obj.Kv_id;
                khuvucDTO kv_dto = new khuvucDTO();
                kv_dto = kv_blo.View_Detail(kv_id);
                row["khuvuc"] = kv_dto.Kv_tenkhuvuc;
                int lp_id = obj.Lp_id;
                loaiphongDTO lp_dto = new loaiphongDTO();
                lp_dto = lp_blo.View_Detail(lp_id);
                row["loaiphong"] = lp_dto.Lp_tenloaiphong;                
                row["id"] = obj.P_id;
                dt.Rows.Add(row);
            }
            //
            dgvData.DataSource = dt;
            //
            //DataGridViewImageColumn img_cl = new DataGridViewImageColumn();
            //Image img = Image.FromFile(Environment.CurrentDirectory + "/Image/Modify.png");
            //img_cl.Image = img;
            //DataGridViewImageColumn img_cl2 = new DataGridViewImageColumn();
            //Image img2 = Image.FromFile(Environment.CurrentDirectory + "/Image/1399730837_DeleteRed.png");
            //img_cl2.Image = img2;

            //dgvData.Columns.Add(img_cl2);
            //dgvData.Columns.Add(img_cl);
            //
            dgvData.Columns[0].Width = 50;
            dgvData.Columns[1].Width = 50;
            dgvData.Columns[2].HeaderText = "Tên phòng";
            dgvData.Columns[3].HeaderText = "Tình trạng";
            dgvData.Columns[4].HeaderText = "Khu vực";
            dgvData.Columns[5].HeaderText = "Loại phòng";
            dgvData.Columns[6].Visible = false;
            //dgvData.Columns[5].Width = 200;
        }

        public void Load_Data()
        {
            // Load Combobox
            cbbKhuvuc.DataSource = kv_blo.get_arr();
            cbbLoaiphong.DataSource = lp_blo.get_arr();
            string[] arr = new string[kv_blo.get_arr().Count()];
            arr = kv_blo.get_arr();
            arr[0] = "";
            cbbKhuvucCapnhat.DataSource = arr;
            cbbLoaiphongCapnhat.DataSource = lp_blo.get_arr();
            // Load datagridview
            Load_Gridview();
        }

        private void button1_Click(object sender, EventArgs e)
        {

            if (txtTenphong.Text.Length == 0 || cbbKhuvuc.Text == "" || cbbLoaiphong.Text=="")
            {
                MessageBox.Show("Vui lòng nhập thông tin đầy đủ", "Lỗi");
                return;
            }
            DialogResult result = MessageBox.Show("Bạn có muốn tạo phòng " + txtTenphong.Text + "?", "Thông Báo", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
            if (result == DialogResult.Yes)
            {
                string p_tenphong = txtTenphong.Text;
                string kv_tenkhuvuc = cbbKhuvuc.Text;
                string lp_tenloaiphong = cbbLoaiphong.Text;
                if (kv_tenkhuvuc != "Tất cả" && lp_tenloaiphong != "")
                {
                    khuvucDTO kv_dto = new khuvucDTO();
                    loaiphongDTO lp_dto = new loaiphongDTO();
                    kv_dto = kv_blo.View_DetailbyName(kv_tenkhuvuc);
                    lp_dto = lp_blo.View_DetailbyName(lp_tenloaiphong);
                    int kv_id = kv_dto.Kv_id, lp_id = lp_dto.Lp_id;
                    phongDTO p_dto = new phongDTO();
                    p_dto.P_tenphong = p_tenphong;
                    p_dto.Lp_id = lp_id;
                    p_dto.Kv_id = kv_id;
                    p_dto.P_tinhtrang = "Trống";
                    p_blo.Insert(p_dto);
                    MessageBox.Show("Tạo phòng " + p_tenphong + " thành công!", "Thông báo");
                    Load_Data();
                    txtTenphong.Text = "";
                }
            }
            else
            {
                //MessageBox.Show("Ban chon no");
            }
        }

        private void dgvData_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            if (e.ColumnIndex == 0)
            {
                int p_id = int.Parse(dgvData.Rows[e.RowIndex].Cells[6].Value.ToString());
                phongDTO obj = new phongDTO();
                obj = p_blo.View_Detail(p_id);
                DialogResult result = MessageBox.Show("Bạn có muốn xoá phòng " + obj.P_tenphong + "?", "Thông Báo", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
                if (result == DialogResult.Yes)
                {
                    MessageBox.Show("Ban chon yes");

                }
                else
                {
                    MessageBox.Show("Ban chon no");
                }

            }
            if (e.ColumnIndex == 1)
            {
                grbPhong.Visible = true;
                int p_id = int.Parse(dgvData.Rows[e.RowIndex].Cells[6].Value.ToString());
                phongDTO obj = new phongDTO();
                obj = p_blo.View_Detail(p_id);
                lblID.Text = p_id.ToString();
                txtTenphongCapnhat.Text = obj.P_tenphong;
                cbbKhuvucCapnhat.Text = dgvData.Rows[e.RowIndex].Cells[4].Value.ToString();
                cbbLoaiphongCapnhat.Text = dgvData.Rows[e.RowIndex].Cells[5].Value.ToString();
            }
        }

        private void btnCapnhat_Click(object sender, EventArgs e)
        {
            if (txtTenphongCapnhat.Text.Length == 0 || cbbKhuvucCapnhat.Text == "" || cbbLoaiphongCapnhat.Text == "")
            {
                MessageBox.Show("Vui lòng nhập thông tin đầy đủ", "Lỗi");
                return;
            }
            DialogResult result = MessageBox.Show("Bạn có muốn cập nhật thông tin phòng " + txtTenphongCapnhat.Text + "?", "Thông Báo", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
            if (result == DialogResult.Yes)
            {
                string p_tenphong = txtTenphongCapnhat.Text;
                string kv_tenkhuvuc = cbbKhuvucCapnhat.Text;
                string lp_tenloaiphong = cbbLoaiphongCapnhat.Text;
                if (kv_tenkhuvuc != "Tất cả" && lp_tenloaiphong != "")
                {
                    khuvucDTO kv_dto = new khuvucDTO();
                    loaiphongDTO lp_dto = new loaiphongDTO();
                    kv_dto = kv_blo.View_DetailbyName(kv_tenkhuvuc);
                    lp_dto = lp_blo.View_DetailbyName(lp_tenloaiphong);
                    int kv_id = kv_dto.Kv_id, lp_id = lp_dto.Lp_id;
                    phongDTO p_dto = new phongDTO();
                    p_dto.P_id = int.Parse(lblID.Text);
                    p_dto.P_tenphong = p_tenphong;
                    p_dto.Lp_id = lp_id;
                    p_dto.Kv_id = kv_id;
                    p_dto.P_tinhtrang = "Trống";
                    p_blo.Update(p_dto);
                    MessageBox.Show("Cập nhật phòng " + p_tenphong + " thành công!", "Thông báo");
                    Load_Data();
                    grbPhong.Visible = false;
                }
            }
            else
            {
                MessageBox.Show("Ban chon no");
            }
        }

        private void txtTenphong_TextChanged(object sender, EventArgs e)
        {

        }

        private void cbbKhuvuc_SelectedIndexChanged(object sender, EventArgs e)
        {

        }

        private void cbbLoaiphong_SelectedIndexChanged(object sender, EventArgs e)
        {

        }

        private void txtTenphongCapnhat_TextChanged(object sender, EventArgs e)
        {

        }

        private void cbbKhuvucCapnhat_SelectedIndexChanged(object sender, EventArgs e)
        {

        }

        private void cbbLoaiphongCapnhat_SelectedIndexChanged(object sender, EventArgs e)
        {

        }
    }
}
